package at.jsug.topicvoting.gwt1.client.vo;


public enum TopicState {

	/** collect votes only */
	NEED() {
		public void dynamicExec(TopicStateDependending dependant) {
			dependant.need();
		}
	},

	/** someone offers a presentation */
	OFFER() {
		public void dynamicExec(TopicStateDependending dependant) {
			dependant.offer();
		}
	},
	
	/** upcoming event, with fixed date */
	NEXT() {
		public void dynamicExec(TopicStateDependending dependant) {
			dependant.next();
		}
	},

	/** more stuff: article in wiki, slides, audio/video */
	PAST() {
		public void dynamicExec(TopicStateDependending dependant) {
			dependant.past();
		}
	}
	;
	
	private TopicState() {
		
	}
	
	public abstract void dynamicExec(TopicStateDependending dependant);
}
